//-----------------------------------------------------------------------------
// Bend2D - Physics Engine
// Roberto Bender <beto.bender@gmail.com>
// Description: 
// Date: 10/03/2010
//-----------------------------------------------------------------------------
#ifndef DRAWABLE_H
#define DRAWABLE_H

#include <list>
using namespace std;

namespace bend2d
{
	class Drawable 
	{
    public:
        typedef list<Drawable*> DrawableList;
        DrawableList::iterator& GetDrawableIterator();
        Drawable();
        virtual ~Drawable() {}
        virtual void Draw();
        bool GetIsVisible() const;
        void SetIsVisible(bool visible);
#ifdef BEND2D_DEBUG
        virtual void DrawNew() = 0;
#endif
    private:
        DrawableList::iterator m_Iterator;
        bool m_IsVisible;
	};
}

#endif
